package ink.tiptop.service;

import ink.tiptop.dto.req.auth.ChangePasswordZjfAuthUserInfoRequest;
import ink.tiptop.persist.domain.entity.ZjfAuthUserInfoEntity;
import ink.tiptop.dto.req.auth.AddZjfAuthUserInfoRequest;
import ink.tiptop.dto.req.auth.LoginZjfAuthUserInfoRequest;
import ink.tiptop.common.domain.rsp.Response;

import java.util.List;

/**
 * 用于用户登录的信息(ZjfAuthUserInfoEntity)表服务接口
 *
 * @author makejava
 * @since 2020-06-21 20:35:17
 */
public interface ZjfAuthUserInfoService {

    /**
     * 通过ID查询单条数据
     *
     * @param id 主键
     * @return 实例对象
     */
    ZjfAuthUserInfoEntity queryById(Integer id);

    /**
     * 查询多条数据
     *
     * @return 对象列表
     */
    List<ZjfAuthUserInfoEntity> queryAll();

    /**
     * 新增数据
     *
     * @param zjfAuthUserInfoEntity 实例对象
     * @return 实例对象
     */
    ZjfAuthUserInfoEntity insert(ZjfAuthUserInfoEntity zjfAuthUserInfoEntity);

    /**
     * 修改数据
     *
     * @param zjfAuthUserInfoEntity 实例对象
     * @return 实例对象
     */
    ZjfAuthUserInfoEntity update(ZjfAuthUserInfoEntity zjfAuthUserInfoEntity);

    /**
     * 通过主键删除数据
     *
     * @param id 主键
     * @return 是否成功
     */
    boolean deleteById(Integer id);

    Response login(LoginZjfAuthUserInfoRequest request);

    Response add(AddZjfAuthUserInfoRequest request);

    Response logout();

    void checkUserExist(String user);

    Response changePasswordByUserName(ChangePasswordZjfAuthUserInfoRequest request);
}